אחרי שהכרנו קצת את הפריימוורק, נלמד איך להתחיל לעבוד איתו
אחרי שקראנו ושמענו על הפריימוורק, אדבר הפעם על התחלת העבודה על לרבל.
נוריד את הפריימוורק מהרפו שלהם בג'יטהאב: https://github.com/laravel/laravel/zipball/master
לפני שאנחנו זורקים אותו לתיקיית הוואב שלנו ומתחילים עם העבודה, יש שתי אפשרויות:
1. ליצור vhost חדש לפרויקט שלנו.
2. להצמד למה שיש.
בשביל אסתטיקה, אני אעדיף ליצור תיקייה נפרדת לפרויקט וליצור לו vhost חדש.
מה שצריך לעשות בשביל זה (אני אצא מנקודת הנחה שאתם משתמשים באפאצ'י) - לגשת לתיקיית האפאצ'י, בתוכה תמצאו תיקייה בשם sites-enabled או conf.d, ושם תיצרו קובץ חדש בשם laravelproject.conf (או איך שתירצו לקרוא לזה).
בתוכו נשים את הקוד הבא:
<VirtualHost *:80>
ServerName laravelproject.dev # Hostname, you can edit it
DocumentRoot /path/to/new/laravel/project/folder/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<FilesMatch "access_log|error_log">
Deny from All
</FilesMatch>
</VirtualHost>
ServerName laravelproject.dev # Hostname, you can edit it
DocumentRoot /path/to/new/laravel/project/folder/public
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<FilesMatch "access_log|error_log">
Deny from All
</FilesMatch>
</VirtualHost>
לאחר מכן מה שנשאר לנו זה לערוך את הקובץ hosts שלנו להוסיף את ההוסט החדש.
במידה ואתם משתמשים במערכת *nix הקובץ יהיה בנתיב: /etc/hosts, במידה בחלונות זה יהיה בנתיב: c:\windows\system32\drivers\etc\hosts, שם נוסיף את השורה הבאה (בסוף הקובץ):
127.0.0.1 laravelproject.dev
נעשה ריסטרט לאפאצ'י, וניגש לכתובת, ומזל טוב!
אם נשים לב לקוד של הvhost, בנטיב בסוף מצוינת תיקיית "public", הסיבה לכך כי המבנה של לרבל ככה בנוי - בתיקיית הפאבליק נמצא כל התוכן החיצוני (קבצים סטטים, עמוד האינדקס). זה כמובן ניתן לשינוי, אך כרגע נצמד בהגדרות מחדל של לרבל.
נחלץ את הפריימוורק לתוך תיקיית העבודה החדשה שלנו ונראה את המבנה הבא (נכון לגירסא 3.2.x):
/application
/bundles
/laravel
/public
/storage
artisan
paths.php
/bundles
/laravel
/public
/storage
artisan
paths.php
וביותר פירוט:
application
התיקייה בעצם מכילה את הפרויקט שלכם.
התיקייה מכילה את המודולים, את הקונטרולרים, את הראוטרים, את הקבצי views שלכם, ואת קבצי הקונפיג.
שם נמצא כל הפרויקט שלכם!
budles
שם נמצאים הבאנדלים שלכם שדיברנו עלייהם במאמר הקודם.
כשתורידו ותתקינו באנדלים, הם יהיו בתיקייה הזאת.
חשוב גם לציין שתיקיית הapplication מוגדרת בפריימוורק כבאנדל בחירת מחדל. כלומר כל מה שאתם עושים שם אתם יכולים לעשות בבאנדלים משלכם. זה דבר מעולה ושימושי להרבה דברים, והדוגמא הכי טובה זה חילוק האתר - באנדל לפרונטאנד, ובאנדל לבאקאנד (הפאנל ניהול).
laravel
זה תיקיית הפריימוורק עצמו. שם נמצאת כל הליבה של המערכת.
רוב הסיכויים שלא תגעו בקבצים שנמצאים בתיקייה הזאת, אך תמיד אפשר לעשות האק לקוד, להוסיף דברים, לתקן באגים ולשתף את הדברים בג'יטהאב :)
כמו כן כל הקוד מקור נמצא בAPI שלהם, ככה שאם תירצו לעיין באיזה חלק של הקוד מקור אפשר תמיד לבדוק שם ולקבל פירוט על כל מטודה ומחלקה בצורה טובה.
public
זה התיקייה החיצונית. כשמישהו ניגש לאתר, השרת וואב שלכם יגש לתיקייה הזאת.
בתיקייה נמצא קובץ האינדקס שאחראי להפעיל את הפריימוורק, והקבצים הסטטים שלכם (קבצי assets, תמונות וכו').
storage
זאת תיקייה שמשומשת על ידי הפריימוורק על מנת לשמור דברים בשביל שירותים שמשתמשים במערכת קבצים בדרייבר שלהם.
נקח לדוגמא סיישנס או קאשינג. במידה ובחרתם בדרייבר שזה יעבוד בקבצים (על עוד אופציות בחירה אתם יכולים לעניין בדרייברים עצמם), לשם ישמרו הקבצים.
התקייה צריכה להיות עם גישות כתיבה וקריאה לשרת וואב שלכם, אחרת יהיה לכם שגיאות.
artisan
זה הממשק cli של הפריימוורק. איתו אפשר לעשות המון דברים שעליהם פירטתי במאמר הקודם.
במאמרים הבאים אפרט עליו יותר לעומק ואיך להשתמש בו.
paths.php
שם מוגדרים הpathים של הפריימוורק (כמו איפה נמצאת תיקיית הפאבליק, application, הפריימוורק וכו').
במידה ותירצו לשנות את המבנה של הפריימוורק, שם זה המקום.
כמו כן שם ניתן להגדיר סביבות עבודה, עלייהם נפרט קצת יותר בהמשך.
בתוך תיקיית Application
נמצא את המבנה הבא:
/config
/controllers
/language
/libraries
/migrations
/models
/tasks
/tests
/views
bundles.php
routes.php
start.php
/controllers
/language
/libraries
/migrations
/models
/tasks
/tests
/views
bundles.php
routes.php
start.php
config
שם נמצא את הקונפיג של המערכת.
שם נגדיר את הפרטים של המסד, נגדיר כל מיני פרמטרים שקשורים במערכת עצמה, נפעיל ונכבה דרייברים,
נגדיר את הדרייברים האלה ועוד.
אחת הדברים שציינתי קודם היה סביבות עבודה. כשאנחנו מגדירים סביבת עבודה, אז אנחנו יכולים ליצור תיקייה חדשה עם השם של הסביבת עבודה הזאתי (לדוגמא development, testing, production) והפריימוורק ידאג לדרוס את כל הקבצים עם הקבצים שנמצאים בתיקייה של הסביבת עבודה הנוכחית.
ככה נראת הגדרה של סביבת עבודה:
$environments = array(
'local' => array('http://localhost*', '*.dev'),
);
'local' => array('http://localhost*', '*.dev'),
);
המפתח במערך זה שם הסביבה, ובתוכו יש עוד מערך שמכיל את כל הקישורים שקשורים לסביבה.
במידה ונכנס מlocalhost, המערכת תדע לזהות באיזה סביבה מדובר ותטען את הקבצי קונפיג בהתאם.
במידה ואנחנו משתמשים ב*, זה יהיה כמו רג'קס. לפי הדוגמא שלמעלה, כל מי שיכנס מלא משנה איזה קישור עם סיומת של .dev המערכת תטען את הסביבת עבודה לוקאל.
חשוב לציין: זה יכולה להיות פירצת אבטחה אם לא משתמשים בזה נכון. ניקח בתאוריה שעשינו סביבת עבודה בשם פיתוח וסביבת עבודה בשם פרוקדשיין, ובתוך הפיתוח הפעלנו שזה יציג שגיאות ועוד דברים בעיתיים של דיבאג.
במידה ולא הגדרנו את השרת וואב נכון, והעלו את הסביבות האלה לאוויר, הבנאדם יכול להגדיר לעצמו בקובץ hosts את השם של הסביבת פיתוח אם הוא יגלה אותה, נגיד mysupersafeproject.dev ועם האיפי של השרת, והמערכת תטען את הקבצים של הפיתוח -אז להזהר עם זה.
controllers, models, views
זה התיקיות של של הMVC של המערכת. שם ניצור את הקונטרולרים שלנו, את הדפי תצוגה, את המודולים של המידע.
כמו שצוין במאמר הקודם, אפשר גם במקום קונרולרים להשתמש במערכת ראטינג שלכם, או לשלב בינהם.
language
כאן נמצאים קבצי השפות שלכם. זה נועד על מנת להקל את העבודה עם l10n.
בבחירת מחדל יש שם כבר שתי קבצים, אחד לvalidator והשני לpagination.
במידה ונשתמש בvalidator של Laravel, נוכל לעשות שהוא יציג את השגיאות בכל שפה שנרצה, אפילו בעברית :)
כמובן שאפשר ורצוי להוסיף שם עוד קבצי שפה לדברים השונים שאנחנו עושים ובכך להקהל על התרגום של המערכת לשפות שונות.
libraries
לרבל תומך בספיריות צד שלישי. שם נוכל לזרוק ספריות שונות, לכתוב כל מיני קלאסים ולהשתמש כמובן בפונקציונליות שלרבל מציעה לנו. זה לרוב משומש לספריות קטנות, במידה וזה משהו יותר רציני עדיף למממש את הדבר בתור באנדל.
migrations
לרבל תומך במיגרציות של המסד שאתם משתמשים איתו.
דבר זה מאפשר לעדכן את הסכמה (Schema) של המסד, לעדכן נתונים במסד ולשמור את כל הגירגסאות של המיגרציות.
עוד בנושא אפשר לקרוא בדוק שלהם.
tasks
פה אנחנו ניצור קבצים של משימות. אם במידה אנחנו רוצים לעשות cron שיעשה פעולה כלשהי כמה זמן, או סתם איזה סקריפט בcli וכדומה שם אנחנו ניצור את הקבצים האלה.
tests
אם נרצה ליצור יוניט טסט למערכת שעשינו, פה אנחנו ניצור אותו ונריץ את הבדיקה עם artisan.
bundles.php
הקובץ מכיל את הבאנדלים שלנו. אם נירצה להטעין באנדל, פשוט נשים אותו במערך שנמצא בקובץ.
routes.php
הקובץ הזה מכיל את הroutes שלנו, פילטרים ועוד.
אם נרצה להוסיף פילטר כלשהו, route, לתפוס איוונטים - נעשה בקובץ הזה.
start.php
זה הקובץ שאחראי על טעינת קבצים, טעינת קונפיגים ועוד.
זה הכל למאמר הזה.
במאמר הבא נלמד יותר לעומק איך לעבוד עם הפריימוורק עצמו.
בינתיים אתם מוזמנים לרפרף בדוקומנטציה שלהם, היא נורא פשוטה ומובנת לכולם :)
תגובות לכתבה:
תודה,
הערה: בעתיד הקרוב laravel 4 תשוחרר, היא הרבה יותר דינאמית ומותאמת ליוניט טסטינג.
ד"א אני בתור אדם שלא אוהב frameworks ומערכות מוכנות התאהבתי ב laravel :D
^
כן בדיוק דיברתי על זה עם מישהו.
אפשר כבר להוריד את לרבל 4: https://github.com/illuminate
הפעם הם הלכו צעד קדימה ומשתמשים בcomposer כמנהל החבילות של המערכת.
אפשר לקרוא עוד על החידושים בL4 כאן: http://net.tutsplus.com/tutorials/php/what-to-expect-from-laravel-4/
תודה רבה!